Many conventional media-capable platforms and media players support only a subclass of available content delivery protocols. The delivery subclass is usually limited to the Hypertext Transport Protocol (HTTP), commonly referred to as a progressive download (PD) protocol. In such environments, a client media player requests a file from a web server. The web server responds to the request by delivering the file via HTTP/TCP (Transmission Control Protocol).
The file is typically organized in an indexed format that is similar or related to the International Organization for Standardization (ISO) base media file format. In the ISO base media file format, an index or metadata is used to seek and decode the content samples of the file. The index is usually found in a single section of the file. The index is typically stored at the start or at the end of the file. Such file formats infer an MPEG-4 systems-like environment.
Encoding/authoring of content in an indexed format relies on the knowledge of the size of the media samples because the metadata contains a complete table of contents with size/position information for all samples in all tracks for the entire clip. Therefore, a size of all compressed audio and video frames must be set before the authoring is finalized, and cannot be changed afterwards.
Streaming formats, such as Real-time Transport Protocol (RTP), Flash Video (FLV) format and MPEG-2 Transport Stream (TS) format, do not have an index and are not interoperable with the MPEG-4 systems-like environments. Many platform/media players either have no support or very poor (i.e., unstable) support for such formats. Other conventional platforms/players are limited in terms of the mix of formats and transport protocols supported. For example, some platforms/players lack RTP/TCP support and only provide unreliable RTP/UDP (User Datagram Protocol). Other conventional platforms/players have a limited ability to buffer data received at an input.
The limitations cause several disadvantages, such as unbounded content, unknown size content, incompatible content and unreliable networks. For example, live content or content in the process of being encoded is unbounded. However, authoring of unbounded content cannot be finished and therefore cannot be accessed until after the encoding has completed. As such, any stored content having a size that changes dynamically during the act of delivery is difficult to process. For example, transcoding of content during delivery to compensate for varying network conditions can alter the size of the content. Availability of the content on a platform/device can be hindered by format incompatibilities or complicated by managing multiple formats. Content providers are either locked out of certain platforms/media players or forced to make content available in many formats. Limiting delivery of the content to a few supported formats can be less reliable and/or efficient than non-supported formats for a given application or service. For example, using TCP can provide more robust transmission and playback during lossy network conditions than UDP. Furthermore, some supported formats are unable to monitor or control the amount of data in the client buffer resulting in transmission problems during dynamic network conditions.